An integrated development environment (IDE) provides a set of tools such as editing and debugging software for programmers. These tools are utilized to create and to debug new software programs. The IDE supports software development by providing a windowed system for source file editing, project management, file interdependency management and debugging. ECLIPSE®, the Eclipse Foundation, is an IDE for C and C++ development on the LINUX® platform. ECLIPSE® uses a plug-in based software model where all the components of the IDE are structured as plug-ins for the IDE.
There are many other types of programming tools that are not part of an IDE and are used on a stand-alone basis. One example of a stand alone tool is Valgrind. Valgrind is profiling utility that provides a suite of tools including a memcheck tool, an address check tool, a heap profiler tool and a cache profiler tool. Another example of a stand-alone programming tool is Oprofile. Oprofile is a profiling utility for the LINUX® platform that configures a processor to generate data useful for debugging. Oprofile can collect data from the configured processor to provide a cache miss counter, a cache stall counter, a memory fetch counter and similar functionality dependent on architecture and functionality of the processor being profiled. Valgrind and Oprofile are typically command line tools that generate simple flat output files.